package com.zw.a.basic.a08.demo03_string;

//案例: String类入门, 即: 如何创建String类型的对象.
/*
    String类中的构造方法:
        public String();                                    通过空参构造, 创建字符串对象.
        public String(String s);                            通过带参构造, 创建字符串对象.
        public String(char[] chs);                          把接收到的字符数组, 转成其对应的字符串形式.
        public String(char[] chs, int index, int count);    把接收到的字符数组的一部分, 转成其对应的字符串形式.
        public String(byte[] bys);                          把接收到的字节数组, 转成其对应的字符串形式.
        public String(byte[] bys, int index, int count);    把接收到的字节数组的一部分, 转成其对应的字符串形式.

    记忆:
        实际开发中, 我们最常用的创建字符串的格式如下:
            String str = "abc";                 //语法糖.
 */
public class StringDemo01 {
    public static void main(String[] args) {
        //1. 演示 public String();  通过空参构造, 创建字符串对象.
        String s1 = new String();
        System.out.println("s1: " + s1);            //输出的不是地址值, 说明String重写了Object#toString().
        System.out.println("-------------------");

        //2. 演示  public String(String s);  通过带参构造, 创建字符串对象.
        String s2 = new String("abc");
        System.out.println("s2: " + s2);
        System.out.println("-------------------");

        //3. 演示  public String(char[] chs);  把接收到的字符数组, 转成其对应的字符串形式.
        char[] chs = {'h', 'e', '黑','马','程','序','员', 'l', 'l', 'o'};
        String s3 = new String(chs);
        System.out.println("s3: " + s3);
        System.out.println("-------------------");

        //4. 演示public String(char[] chs, int index, int count);    把接收到的字符数组的一部分, 转成其对应的字符串形式.
        String s4 = new String(chs, 2, 5);
        System.out.println("s4: " + s4);
        System.out.println("-------------------");

        //5. 演示public String(byte[] bys);  把接收到的字节数组, 转成其对应的字符串形式.
        byte[] bys = {97, 98, 99, 65, 66};
        String s5 = new String(bys);
        System.out.println("s5: " + s5);        //abcAB
        System.out.println("-------------------");

        //6. 演示public String(byte[] bys, int index, int count);    把接收到的字节数组的一部分, 转成其对应的字符串形式.
        String s6 = new String(bys, 1, 2);
        System.out.println("s6: " + s6);
        System.out.println("-------------------");

        //7. 实际开发写法
        String s7 = "abc";      //语法糖.
        System.out.println("s7: " + s7);
    }
}
